home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1998 July / EnigmA AMIGA RUN 29 (1998)(G.R. Edizioni)(IT)[!][issue 1998-07 & 08].iso / recent / iib122.lha / IIB / Threads / Additional / IARexx.lha / sphere.irx < prev    next >
Text File  |  1997-03-23  |  873b  |  43 lines

  1. /* Makes the selected object into a sphere */
  2. /* size is 100 units, scale as desired     */
  3. options results
  4.  
  5. if ~exists('libs:rexxmathlib.library')
  6.         then do
  7.    notify 'rexxmathlib.library is needed'
  8.    exit(0)
  9. end
  10.  
  11.  
  12.  
  13. call addlib('rexxmathlib.library',0,-30)
  14.  
  15. address "Imagine.1"
  16.  
  17. displayrexxptr on
  18. getgeometry
  19. getaxisinfo
  20.  
  21.  
  22. do i= 1 to pnt_num
  23.   normr = sqrt( (pnt_x.i-axis_position_x)**2 ,
  24.               + (pnt_y.i-axis_position_y)**2 ,
  25.               + (pnt_z.i-axis_position_z)**2 ) ;
  26.   if normr = 0
  27.     then
  28.       do
  29.        notify "No point may lie on the axis"
  30.        displayrexxptr off
  31.        exit(10)
  32.       end
  33.  
  34.    normr = 100 / normr
  35.    pnt_x.i = (pnt_x.i-axis_position_x)*normr + axis_position_x
  36.    pnt_y.i = (pnt_y.i-axis_position_y)*normr + axis_position_y
  37.    pnt_z.i = (pnt_z.i-axis_position_z)*normr + axis_position_z
  38.  
  39. end
  40.  
  41. setgeometry
  42. displayrexxptr off
  43.